import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.google.gwt.sample.dynatablerf.server.domain.Categoria;
import com.google.gwt.sample.dynatablerf.server.domain.Produto;

public class Main {

	private static final String IMAGES_PATH = "src/main/resources/testImages/";

	static Categoria createCategoria(String nome) {
		Categoria categoria = new Categoria();
		categoria.setNome(nome);
		return categoria;
	}

	static Produto createProduto(String nome, String descricao,
			String nomeImagem) throws IOException {
		Produto produto = new Produto();
		produto.setNome(nome);
		produto.setDescricao(descricao);
		byte[] imagem = toByteArray(IMAGES_PATH + nomeImagem);
		produto.setImagem(imagem);
		return produto;
	}

	static byte[] toByteArray(String filePath) throws IOException {

		File file = new File(filePath);
		FileInputStream fileInputStream = new FileInputStream(file);

		byte[] byteArray = new byte[(int) file.length()];
		fileInputStream.read(byteArray);
		fileInputStream.close();
		return byteArray;
	}

	public static void main(String[] args) throws IOException {

		Categoria lugares = createCategoria("Lugares");

		Produto deserto = createProduto("Deserto", "Lugar quente",
				"Desert_.jpg");
		Produto litoral = createProduto("Litoral", "Lugar bonito",
				"Lighthouse_.jpg");

		lugares.addProduto(deserto);
		lugares.addProduto(litoral);

		Categoria seresVivos = createCategoria("Seres vivos");

		Categoria vegetais = createCategoria("Vegetais");
		Categoria animais = createCategoria("Animais");

		seresVivos.addCategoria(vegetais);
		seresVivos.addCategoria(animais);

		Produto florVermelha = createProduto("Flor vermelha",
				"Cor avermelhada", "Chrysanthemum_.jpg");
		Produto hortensia = createProduto("Flor Hortência",
				"Cor azul e amarelo", "Hydrangeas_.jpg");
		Produto tulipas = createProduto("Flor Tulipas", "Cor amerlo",
				"Tulips_.jpg");

		vegetais.addProduto(florVermelha);
		vegetais.addProduto(hortensia);
		vegetais.addProduto(tulipas);

		Categoria terrestre = createCategoria("Terrestre");
		Categoria aquatico = createCategoria("Aquatico");

		animais.addCategoria(terrestre);
		animais.addCategoria(aquatico);

		Produto koala = createProduto("Coala", "Animal Mamifero", "Koala_.jpg");
		Produto penguin = createProduto("Penguim", "Ave", "Penguins_.jpg");
		Produto aguaViva = createProduto("Água viva", "Animal Aquático",
				"Jellyfish_.jpg");

		terrestre.addProduto(koala);
		terrestre.addProduto(penguin);

		aquatico.addProduto(aguaViva);

		List<Categoria> categorias = new ArrayList<Categoria>();
		categorias.add(lugares);
		categorias.add(seresVivos);

		// ControladorFactory.getControladorCategoria().persist(categorias);

	}
}
